home *** CD-ROM | disk | FTP | other *** search
/ Corel Professional Photos 800: Sampler 4 / Corel Professional Photos 800: Sampler 4.iso / pc / utils / setup / corelcd.mst < prev    next >
Text File  |  1996-06-05  |  20KB  |  645 lines

  1. '**************************************************************************
  2. '*           MSSetup Toolkit - Corel Professional Photos 1 Setup          *
  3. '**************************************************************************
  4.  
  5. '$DEFINE DEBUG  ''Define for script development/debugging
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8. '$INCLUDE 'msdetect.inc'
  9.  
  10. CONST WS_VISIBLE=&H10000000
  11. CONST WS_BORDER =&H00800000
  12. CONST WS_CLIPCHILDREN =&H02000000
  13. CONST GWL_STYLE =-16
  14. CONST SW_SHOWMAXIMIZED=3
  15.  
  16. DECLARE FUNCTION ShowWindow LIB "user.exe" (hWnd%,iShow%) AS INTEGER
  17. DECLARE FUNCTION SetWindowLong LIB "user.exe" (hWnd%,offset%,style&) AS LONG
  18.  
  19. hWnd%=HwndFrame()
  20.  
  21. sti&=SetWindowLong(hWnd%,GWL_STYLE,WS_VISIBLE+WS_BORDER+WS_CLIPCHILDREN)
  22. stj%=ShowWindow(hWnd%,SW_SHOWMAXIMIZED)
  23.  
  24. ''Dialog ID's
  25. CONST WELCOME      = 100
  26. CONST ASKQUIT      = 200
  27. CONST DESTPATH     = 300
  28. CONST EXITFAILURE  = 400
  29. CONST EXITQUIT     = 600
  30. CONST EXITSUCCESS  = 700
  31. CONST ASKQTOUR     = 800
  32. CONST APPHELP      = 900
  33. CONST CUSTINST     = 6200
  34. CONST TOOBIG       = 6300
  35. CONST BADPATH      = 6400
  36. 'CONST MOSAIC       = 7100
  37. CONST PCDSCSI      = 7200
  38. CONST CDAUDIO      = 7300
  39. CONST VIDEOWARN    = 7500
  40.  
  41. ''Bitmap ID
  42. CONST LOGO         = 1
  43.  
  44. ''File Types
  45. CONST PCDLABFILES    = 1
  46. 'CONST PCDMOSFILES    = 2
  47. CONST PCDAUDFILES    = 2
  48. CONST PCDSCRFILES    = 3
  49. CONST PCDWALFILES    = 4
  50. CONST PCDQTRFILES    = 5
  51. CONST PCDDBFFILES    = 6
  52.  
  53. GLOBAL DEST$        ''Default destination directory.
  54. GLOBAL WINDRIVE$    ''Windows drive letter.
  55. 'GLOBAL MosDir$      ''Location of old mosaic program, if found.
  56. 'GLOBAL MosFlag$      ''Flag for old mosaic program, if found.
  57. GLOBAL QTRFlag$     ''Flag for QuickTour
  58. GLOBAL MPlrFlag     ''Flag for Media Player 
  59.  
  60. FLAG1$          ="No"      '' Copy flags for
  61. FLAG2$          ="No"      '' DLL files that go
  62. FLAG3$          ="No"      '' into WindowsDir and WindowsSysDir
  63. QTRFlag$        ="NO"
  64.  
  65. ''CustInst list symbol names
  66. GLOBAL PCDLABNEEDS$    ''Option list costs per drive
  67. 'GLOBAL PCDMOSNEEDS$
  68. GLOBAL PCDAUDNEEDS$
  69. GLOBAL PCDSCRNEEDS$
  70. GLOBAL PCDWALNEEDS$
  71. GLOBAL PCDQTRNEEDS$
  72. GLOBAL PCDDBFNEEDS$
  73.  
  74. GLOBAL EXTRACOSTS$  ''List of extra costs to add per drive
  75. GLOBAL BIGLIST$     ''List of option files cost calc results (boolean)
  76.  
  77. ''Dialog list symbol names
  78. GLOBAL CHECKSTATES$
  79. GLOBAL STATUSTEXT$
  80. GLOBAL DRIVETEXT$
  81.  
  82.  
  83. DECLARE SUB AddOptFilesToCopyList (ftype%)
  84. DECLARE SUB RecalcOptFiles (ftype%)
  85. DECLARE SUB RecalcPath
  86. DECLARE SUB SetDriveStatus
  87. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  88. DECLARE FUNCTION VflatdPresent LIB "iniupd.dll" AS INTEGER
  89.  
  90. INIT:
  91.     CUIDLL$ = "mscuistf.dll"            ''custom user interface dll
  92.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  93.  
  94.     SetBitmap CUIDLL$, LOGO
  95.     SetTitle "Corel Professional Photos Setup"
  96.  
  97.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  98.     IF szInf$ = "" THEN
  99.     szInf$ = GetSymbolValue("STF_CWDDIR") + "CORELCD.INF"
  100.     END IF
  101.     ReadInfFile szInf$
  102.  
  103.     WINDRIVE$ = MID$(GetWindowsDir, 1, 1)
  104.     WINDIR$ = GetWindowsDir()
  105.     DEST$ = ucase$(WINDRIVE$) + ":\CORELCD"
  106.  
  107.     ''CustInst list symbols
  108.     CHECKSTATES$ = "CheckItemsState"
  109.     STATUSTEXT$  = "StatusItemsText"
  110.     DRIVETEXT$   = "DriveStatusText"
  111.     FOR i% = 1 TO 6 STEP 1
  112.     AddListItem CHECKSTATES$, "ON"
  113.     NEXT i%
  114.     FOR i% = 1 TO 6 STEP 1
  115.     AddListItem STATUSTEXT$, ""
  116.     NEXT i%
  117.     FOR i% = 1 TO 7 STEP 1
  118.     AddListItem DRIVETEXT$, ""
  119.     NEXT i%
  120.     ReplaceListItem DRIVETEXT$, 7, DEST$
  121.  
  122.     ''Disk cost list symbols
  123.     PCDLABNEEDS$  = "PcdLabNeeds"
  124.     'PCDMOSNEEDS$  = "PcdMosNeeds"
  125.     PCDAUDNEEDS$  = "PcdAudNeeds"
  126.     PCDSCRNEEDS$  = "PcdScrNeeds"
  127.     PCDWALNEEDS$  = "PcdWalNeeds"
  128.     PCDQTRNEEDS$  = "PcdQtrNeeds"
  129.     PCDDBFNEEDS$  = "PcdDbfNeeds"
  130.  
  131.     EXTRACOSTS$ = "ExtraCosts"
  132.     BIGLIST$    = "BigList"
  133.     FOR i% = 1 TO 6 STEP 1
  134.     AddListItem BIGLIST$, ""
  135.     NEXT i%
  136.     FOR i% = 1 TO 26 STEP 1
  137.     AddListItem EXTRACOSTS$, "0"
  138.     NEXT i%
  139.  
  140.     MPlrFlag = DoesFileExist(MakePath(WinDir$, "mplayer.reg"), femExists)
  141.  
  142.     RecalcPath
  143.     SetDriveStatus
  144.  
  145. '$IFDEF DEBUG
  146.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  147. '$ENDIF ''DEBUG
  148.  
  149.  
  150. WELCOME:
  151.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  152.     IF sz$ = "CONTINUE" THEN
  153.     UIPop 1
  154.     ELSE
  155.     GOSUB ASKQUIT
  156.     GOTO WELCOME
  157.     END IF
  158.  
  159.  
  160. CUSTINST:
  161.     sz$ = UIStartDlg(CUIDLL$, CUSTINST, "FCustInstDlgProc", APPHELP, HELPPROC$)
  162.  
  163.     IF sz$ = "CONTINUE" THEN
  164.     ''Install only if it will fit.
  165.     FOR i% = 1 TO 6 STEP 1
  166.         IF GetListItem(BIGLIST$, i%) <> "" THEN
  167.         GOSUB TOOBIG
  168.         GOTO CUSTINST
  169.         END IF
  170.     NEXT i%
  171.     UIPop 1
  172.     GOTO INSTALL
  173.     ELSEIF sz$ = "PATH" THEN
  174.     GOTO GETPATH
  175.     ELSEIF sz$ = "CHK1" THEN
  176.     RecalcOptFiles PCDLABFILES
  177.     SetDriveStatus
  178.     GOTO CUSTINST
  179.     ELSEIF sz$ = "CHK2" THEN
  180.     RecalcOptFiles PCDAUDFILES
  181.     SetDriveStatus
  182.     GOTO CUSTINST
  183.     ELSEIF sz$ = "CHK3" THEN
  184.     RecalcOptFiles PCDSCRFILES
  185.     SetDriveStatus
  186.     GOTO CUSTINST
  187.     ELSEIF sz$ = "CHK4" THEN
  188.     RecalcOptFiles PCDWALFILES
  189.     SetDriveStatus
  190.     GOTO CUSTINST
  191.     ELSEIF sz$ = "CHK5" THEN
  192.     RecalcOptFiles PCDQTRFILES
  193.     SetDriveStatus
  194.     GOTO CUSTINST
  195.     ELSEIF sz$ = "CHK6" THEN
  196.     RecalcOptFiles PCDDBFFILES
  197.     SetDriveStatus
  198.     GOTO CUSTINST
  199.     ELSEIF sz$ = "REACTIVATE" THEN
  200.     RecalcPath
  201.     SetDriveStatus
  202.     GOTO CUSTINST
  203.     ELSE
  204.     GOSUB ASKQUIT
  205.     GOTO CUSTINST
  206.     END IF
  207.  
  208.  
  209.  
  210. INSTALL:
  211.     ClearCopyList
  212.     AddOptFilesToCopyList PCDLABFILES
  213.     'AddOptFilesToCopyList PCDMOSFILES
  214.     AddOptFilesToCopyList PCDAUDFILES
  215.     AddOptFilesToCopyList PCDSCRFILES
  216.     AddOptFilesToCopyList PCDWALFILES
  217.     AddOptFilesToCopyList PCDQTRFILES
  218.     AddOptFilesToCopyList PCDDBFFILES
  219.  
  220.     CreateDir DEST$, cmoNone
  221.     
  222.     IF GetListItem(CHECKSTATES$, PCDLABFILES) = "ON" THEN
  223.      IF DoesIniKeyExist("WIN.INI", "PhotoCD Lab", "Dir") = 1 THEN
  224.          PcdDir$ = GetIniKeyString("WIN.INI", "PhotoCD Lab", "Dir")
  225.          IF DoesFileExist(PcdDir$ + "\PCDLAB.EXE", femExists) = 1 THEN
  226.          SetSymbolValue "ConfirmTextIn", PcdDir$
  227.          SetSymbolValue "EditFocus", "END"
  228.          sz$ = UIStartDlg(CUIDLL$, PCDSCSI, "FConfirmDlgProc", APPHELP, HELPPROC$)
  229.          IF sz$ = "BACK" THEN
  230.              UIPop 1
  231.              GOTO CUSTINST
  232.          ELSEIF sz$ = "CONTINUE" THEN
  233.              UIPop 1
  234.          END IF
  235.          END IF
  236.      END IF
  237.      IF PcdDir$ <> "" THEN
  238.          CreateIniKeyValue "WIN.INI", "PhotoCD Lab", "Dir", PcdDir$, cmoOverwrite
  239.      ELSE
  240.          CreateIniKeyValue "WIN.INI", "PhotoCD Lab", "Dir", DEST$ + "\PCDLAB", cmoOverwrite
  241.      END IF
  242.     END IF
  243.  
  244.     
  245.     IF GetListItem(CHECKSTATES$, PCDAUDFILES) = "ON" THEN
  246.      IF DoesIniKeyExist("WIN.INI", "CorelSCSI", "CD-Audio") = 1 THEN
  247.          CDAudioDir$ = GetIniKeyString("WIN.INI", "CorelSCSI", "CD-Audio")
  248.          IF DoesFileExist(CDAudioDir$ + "\CD_AUDIO.EXE", femExists) = 1 THEN
  249.          SetSymbolValue "ConfirmTextIn", CDAudioDir$
  250.          SetSymbolValue "EditFocus", "END"
  251.          sz$ = UIStartDlg(CUIDLL$, CDAUDIO, "FConfirmDlgProc", APPHELP, HELPPROC$)
  252.          IF sz$ = "BACK" THEN
  253.              UIPop 1
  254.              GOTO CUSTINST
  255.          ELSEIF sz$ = "CONTINUE" THEN
  256.              UIPop 1
  257.          END IF
  258.          END IF
  259.      END IF
  260.      CreateIniKeyValue "WIN.INI", "CorelSCSI", "CD-Audio", DEST$ + "\PCDAUDIO", cmoOverwrite
  261.     END IF
  262.  
  263.     IF GetListItem(CHECKSTATES$, PCDQTRFILES) = "ON" THEN
  264.       IF VflatdPresent() = 0 THEN
  265.      CreateSysIniKeyValue WinDir$ + "system.ini", "386Enh", "device", "dva.386", cmoOverwrite
  266.       END IF
  267.       CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.CVID", "iccvid.drv", cmoOverwrite
  268.       CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MSVC", "msvidc.drv", cmoOverwrite
  269.       CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV31", "indeov.drv", cmoOverwrite
  270.       CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MRLE", "MSRLE.drv", cmoOverwrite
  271.       IF DoesIniKeyExist (GetWindowsSysDir + "system.ini", "Drivers", "VIDC.RT21") = 0 THEN
  272.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.RT21", "indeov.drv", cmoOverwrite
  273.       END IF
  274.       CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.YVU9", "indeov.drv", cmoOverwrite
  275.       CreateIniKeyValue WinDir$ + "WIN.INI", "mci extensions", "avi", "AVIVideo", cmoOverwrite
  276.       CreateIniKeyValue WinDir$ + "system.ini", "mci", "AVIVideo", "mciavi.drv", cmoOverwrite
  277.       CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "WaveMapper", "msacm.drv", cmoOverwrite
  278.       CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.msadpcm", "msadpcm.acm", cmoOverwrite
  279.       CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.imaadpcm", "imaadpcm.acm", cmoOverwrite
  280.       CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msacm.drv", "Microsoft Sound Mapper V2.00", cmoOverwrite
  281.       CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msadpcm.acm", "Microsoft ADPCM Codec V2.00", cmoOverwrite
  282.       CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "imaadpcm.acm", "Microsoft IMA ADPCM Codec V2.00", cmoOverwrite
  283.     END IF
  284.  
  285.     CopyFilesInCopyList
  286.  
  287.     InstDrive$=MID$(DEST$,1,2)
  288.     CreateProgmanGroup "Professional Photos", "", cmoNone
  289.     IF GetListItem(CHECKSTATES$, PCDLABFILES) = "ON" THEN
  290.     ShowProgmanGroup "Professional Photos", 1, cmoNone
  291.     CreateProgmanItem "Professional Photos", "PhotoCD Lab", MakePath(DEST$, "pcdlab\pcdlab.exe "), "", cmoOverwrite
  292.     END IF
  293.  
  294.    
  295.     IF GetListItem(CHECKSTATES$, PCDAUDFILES) = "ON" THEN
  296.     ShowProgmanGroup "Professional Photos", 1, cmoNone
  297.     CreateProgmanItem "Professional Photos", "CD Audio", MakePath(DEST$, "pcdaudio\cd_audio.exe "), "", cmoOverwrite
  298.     END IF
  299.     IF GetListItem(CHECKSTATES$, PCDSCRFILES) = "ON" THEN
  300.     ShowProgmanGroup "Professional Photos", 1, cmoNone
  301.     END IF
  302.  
  303.     IF GetListItem(CHECKSTATES$, PCDWALFILES) = "ON" THEN
  304.     ShowProgmanGroup "Professional Photos", 1, cmoNone
  305.     CreateProgmanItem "Professional Photos", "Wallpaper Flipper Configuration", MakePath(GetWindowsDir, "wflipcnf.exe"), "", cmoOverwrite
  306.     END IF
  307.     IF GetListItem(CHECKSTATES$, PCDQTRFILES) = "ON" THEN
  308.     ShowProgmanGroup "Professional Photos", 1, cmoNone
  309.     CreateProgmanItem "Accessories", "Media Player", MakePath(WinDir$, "mplayer.exe"), "", cmoOverwrite
  310.     CreateProgmanItem "Professional Photos", "Professional Photos QuickTour", GetSymbolValue("STF_SRCDIR")+"utils\cppqtour\qtviewer.exe", "", cmoOverwrite
  311.     END IF
  312.     IF GetListItem(CHECKSTATES$, PCDDBFFILES) = "ON" THEN
  313.     ShowProgmanGroup "Professional Photos", 1, cmoNone
  314.         CreateProgmanItem "Professional Photos", "Corel Photo Browser Database", MID$(GetSymbolValue("STF_SRCDIR"),1,3)+"utils\library\prelude.exe", "", cmoOverwrite
  315.     END IF
  316.       CreateProgmanItem "Professional Photos", "Getting Started", MakePath(DEST$,"g_start.hlp"), "", cmoOverwrite 
  317.     CreateProgmanItem "Professional Photos", "Artview Screen Saver Help", MakePath(DEST$,"artview.hlp"), "", cmoOverwrite 
  318.  
  319. QUIT:
  320.     ON ERROR GOTO ERRQUIT
  321.  
  322.     IF ERR = 0 THEN
  323.     dlg% = EXITSUCCESS
  324.     ELSEIF ERR = STFQUIT THEN
  325.     dlg% = EXITQUIT
  326.     ELSE
  327.     dlg% = EXITFAILURE
  328.     END IF
  329. QUITL1:
  330.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  331.     IF sz$ = "REACTIVATE" THEN
  332.     GOTO QUITL1
  333.     END IF
  334.     UIPop 1
  335.     IF QTRFlag$ = "YES" AND dlg% = EXITSUCCESS THEN
  336.       displayname$ = GetIniKeyString(WinDir$ + "SYSTEM.INI", "BOOT.DESCRIPTION", "DISPLAY.DRV")
  337.       FOR a% = 1 TO LEN(displayname$) - 4
  338.     checkname$ = MID$(displayname$, a%, 4)
  339.     IF checkname$ = "mach" THEN
  340.     machexist = 1
  341.     end if
  342.       NEXT a%
  343.       if machexist = 1 then
  344.     sz$ = UIStartDlg(CUIDLL$, VIDEOWARN, "FConfirmDlgProc", 0, "")
  345.     UIPop 1
  346.       end if
  347.       IF MPlrFlag <> 1 THEN
  348.     Run ("regedit.exe /s " + MakePath(WinDir$, "mplayer.reg"))
  349.     Run ("regedit.exe /s " + MakePath(WinSysDir$, "OLE2.reg"))
  350.     Run ("regedit.exe /s " + MakePath(WinSysDir$, "cleanup.reg"))
  351.     Run (GetSymbolValue("STF_SRCDIR")+"utils\setup\profdisp.exe")
  352.       END IF
  353.       sz$ = UIStartDlg(CUIDLL$, ASKQTOUR, "FConfirmDlgProc", 0, "")
  354.     IF sz$ = "CONTINUE" THEN
  355.       UIPop 1
  356.       CHDRIVE GetSymbolValue("STF_SRCDIR")
  357.       CHDIR "\utils\cppqtour"
  358.       Run ("qtviewer.exe")
  359.     ELSE
  360.       UIPop 1
  361.     END IF
  362.     END IF
  363.     END
  364.  
  365. ERRQUIT:
  366.     i% = DoMsgBox("Setup sources were corrupted, call Corel Tech Support", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  367.     END
  368.  
  369.  
  370.  
  371. GETPATH:
  372.     SetSymbolValue "EditTextIn", DEST$
  373.     SetSymbolValue "EditFocus", "END"
  374. GETPATHL1:
  375.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  376.  
  377.     IF sz$ = "CONTINUE" THEN
  378.     olddest$ = DEST$
  379.     DEST$ = GetSymbolValue("EditTextOut")
  380.  
  381.     ''Validate new path.
  382.     IF IsDirWritable(DEST$) = 0 THEN
  383.         GOSUB BADPATH
  384.         GOTO GETPATHL1
  385.     END IF
  386.     UIPop 1
  387.  
  388.     ''Truncate display if too long.
  389.     IF LEN(DEST$) > 23 THEN
  390.         ReplaceListItem DRIVETEXT$, 7, MID$(DEST$, 1, 23)+"..."
  391.     ELSE
  392.         ReplaceListItem DRIVETEXT$, 7, DEST$
  393.     END IF
  394.  
  395.     ''Recalc if path changed.
  396.     IF (olddest$ <> DEST$) AND (olddest$ <> DEST$+"\") AND (olddest$+"\" <> DEST$) THEN
  397.         RecalcPath
  398.         SetDriveStatus
  399.     END IF
  400.  
  401.     olddest$ = ""
  402.     GOTO CUSTINST
  403.     ELSEIF sz$ = "REACTIVATE" THEN
  404.     RecalcPath
  405.     SetDriveStatus
  406.     GOTO GETPATHL1
  407.     ELSEIF sz$ = "EXIT" THEN
  408.     GOSUB ASKQUIT
  409.     GOTO GETPATHL1
  410.     ELSE
  411.     UIPop 1
  412.     GOTO CUSTINST
  413.     END IF
  414.  
  415.  
  416.  
  417. TOOBIG:
  418.     sz$ = UIStartDlg(CUIDLL$, TOOBIG, "FInfo0DlgProc", 0, "")
  419.     IF sz$ = "REACTIVATE" THEN
  420.     RecalcPath
  421.     SetDriveStatus
  422.     GOTO TOOBIG
  423.     END IF
  424.     UIPop 1
  425.     RETURN
  426.  
  427.  
  428.  
  429. BADPATH:
  430.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  431.     IF sz$ = "REACTIVATE" THEN
  432.     RecalcPath
  433.     SetDriveStatus
  434.     GOTO BADPATH
  435.     END IF
  436.     UIPop 1
  437.     RETURN
  438.  
  439.  
  440.  
  441. ASKQUIT:
  442.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  443.  
  444.     IF sz$ = "EXIT" THEN
  445.     UIPopAll
  446.     ERROR STFQUIT
  447.     ELSEIF sz$ = "REACTIVATE" THEN
  448.     GOTO ASKQUIT
  449.     ELSE
  450.     UIPop 1
  451.     END IF
  452.     RETURN
  453.  
  454.  
  455.  
  456. '**
  457. '** Purpose:
  458. '**     Adds the specified option files to the copy list.
  459. '** Arguments:
  460. '**     ftype%  - type of files to add, one of the following:
  461. '**             PCDLABFILES, PCDAUDFILES, PCDSCRFILES, PCDWALFILES, PCDQTRFILES, PCDDBFFILES
  462. '** Returns:
  463. '**     none.
  464. '*************************************************************************
  465. SUB AddOptFilesToCopyList (ftype%) STATIC
  466.  
  467.     IF GetListItem(CHECKSTATES$, ftype%) = "ON" THEN
  468.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  469.     WinDirLen = LEN(GetWindowsDir)-1
  470.     WinDir$ = MID$(GetWindowsDir,1,WinDirLen)
  471.     InstDrive$ = MID$(DEST$,1,2)
  472.     IF ftype% = PCDLABFILES THEN
  473.         AddSectionFilesToCopyList "PcdLabFiles", SrcDir$, DEST$ + "\PCDLAB"
  474.         FLAG1$="Yes"
  475.         FLAG2$="Yes"
  476.         FLAG3$="Yes"
  477.      'END IF 
  478.         'FLAG1$="Yes"
  479.           'FLAG3$="Yes"    
  480.     ELSEIF ftype% = PCDAUDFILES THEN
  481.         AddSectionFilesToCopyList "PcdAudFiles", SrcDir$, DEST$ + "\PCDAUDIO"
  482.     ELSEIF ftype% = PCDSCRFILES THEN
  483.         AddSectionFilesToCopyList "PcdScrFiles", SrcDir$, GetWindowsDir
  484.         FLAG3$="Yes"
  485.     ELSEIF ftype% = PCDWALFILES THEN
  486.         AddSectionFilesToCopyList "PcdWalFiles", SrcDir$, GetWindowsDir
  487.     ELSEIF ftype% = PCDQTRFILES THEN
  488.         AddSectionFilesToCopyList "PcdQtrFiles", SrcDir$, GetWindowsDir
  489.         AddSectionFilesToCopyList "PcdQtrSysFiles", SrcDir$, GetWindowsSysDir
  490.         QtrFlag$="YES"
  491.     END IF
  492.     IF FLAG1$="Yes" THEN
  493.         CreateIniKeyValue "WIN.INI", "Extensions", "PCD", DEST$ + "\PCDLAB\PCDLAB.EXE ^.PCD", cmoOverwrite
  494.         AddSectionFilesToCopyList "PcdDllFiles", SrcDir$, GetWindowsSysDir
  495.         IF DoesFileExist(GetWindowsDir + "PCDLIB.DLL", femExists) =1 THEN
  496.         RemoveFile GetWindowsDir + "PCDLIB.DLL", cmoNone
  497.         END IF
  498.         IF DoesFileExist(GetWindowsDir + "PCDXTIF.DLL", femExists) =1 THEN
  499.         RemoveFile GetWindowsDir + "PCDXTIF.DLL", cmoNone
  500.         END IF
  501.         IF DoesFileExist(GetWindowsDir + "PCDXEPS.DLL", femExists) =1 THEN
  502.         RemoveFile GetWindowsDir + "PCDXEPS.DLL", cmoNone
  503.         END IF
  504.         IF DoesFileExist(GetWindowsDir + "PCDXPCX.DLL", femExists) =1 THEN
  505.         RemoveFile GetWindowsDir + "PCDXPCX.DLL", cmoNone
  506.         END IF
  507.         IF DoesFileExist(GetWindowsDir + "PCDXBMP.DLL", femExists) =1 THEN
  508.         RemoveFile GetWindowsDir + "PCDXBMP.DLL", cmoNone
  509.         END IF
  510.     END IF
  511.     IF FLAG2$="Yes" THEN
  512.         AddSectionFilesToCopyList "PcdCtlFile", SrcDir$, GetWindowsSysDir
  513.     END IF
  514.     IF FLAG3$="Yes" THEN
  515.         AddSectionFilesToCopyList "PcdDllFile", SrcDir$, GetWindowsSysDir
  516.     END IF
  517.         AddSectionFilesToCopyList "PcdReadMe", SrcDir$, DEST$
  518.     FLAG1$="No"
  519.     FLAG2$="No"
  520.     FLAG3$="No"
  521.     SrcDir$ = ""
  522.     END IF
  523. END SUB
  524.  
  525. '**
  526. '** Purpose:
  527. '**     Recalculates disk space for the given option files and sets
  528. '**     the status info symbol "StatusItemsText".
  529. '** Arguments:
  530. '**     ftype% - type of files to add, one of the following:
  531. '**             PCDLABFILES, PCDMOSFILES, PCDAUDFILES, PCDSCRFILES, PCDWALFILES, PCDQTRFILES
  532. '** Returns:
  533. '**     none.
  534. '*************************************************************************
  535. SUB RecalcOptFiles (ftype%) STATIC
  536.     CursorSave% = ShowWaitCursor()
  537.     ClearCopyList
  538.     AddOptFilesToCopyList ftype%
  539.  
  540.     fExtra% = 0
  541.     IF ftype% = PCDLABFILES THEN
  542.     ListSym$ = PCDLABNEEDS$
  543.     ELSEIF ftype% = PCDAUDFILES THEN
  544.     ListSym$ = PCDAUDNEEDS$
  545.     ELSEIF ftype% = PCDSCRFILES THEN
  546.     ListSym$ = PCDSCRNEEDS$
  547.     ELSEIF ftype% = PCDWALFILES THEN
  548.     ListSym$ = PCDWALNEEDS$
  549.     ELSEIF ftype% = PCDQTRFILES THEN
  550.     ListSym$ = PCDQTRNEEDS$
  551.     ELSEIF ftype% = PCDDBFFILES THEN
  552.     ListSym$ = PCDDBFNEEDS$
  553.  
  554.     IF QTRFlag$ = "YES" THEN
  555.     QTRFlag$ = "NO"
  556.     END IF
  557.     END IF
  558.  
  559.     StillNeed& = GetCopyListCost(EXTRACOSTS$, ListSym$, "")
  560.  
  561.     cost& = 0
  562.     FOR i% = 1 TO 26 STEP 1
  563.     cost&  = cost& + VAL(GetListItem(ListSym$, i%))
  564.     NEXT i%
  565.     ReplaceListItem STATUSTEXT$, ftype%, STR$(cost& / 1024) + " K"
  566.  
  567.     IF StillNeed& > 0 THEN
  568.     ReplaceListItem BIGLIST$, ftype%, "YES"
  569.     ELSE
  570.     ReplaceListItem BIGLIST$, ftype%, ""
  571.     END IF
  572.  
  573.     RestoreCursor CursorSave%
  574.     ListSym$ = ""
  575. END SUB
  576.  
  577.  
  578. '**
  579. '** Purpose:
  580. '**     Recalculates disk space and sets option status info according
  581. '**     to the current destination path.
  582. '** Arguments:
  583. '**     none.
  584. '** Returns:
  585. '**     none.
  586. '*************************************************************************
  587. SUB RecalcPath STATIC
  588.  
  589.     CursorSave% = ShowWaitCursor()
  590.  
  591.     RecalcOptFiles PCDLABFILES
  592.     RecalcOptFiles PCDAUDFILES
  593.     RecalcOptFiles PCDSCRFILES
  594.     RecalcOptFiles PCDWALFILES
  595.     RecalcOptFiles PCDQTRFILES
  596.     RecalcOptFiles PCDDBFFILES
  597.  
  598.     RestoreCursor CursorSave%
  599. END SUB
  600.  
  601.  
  602. '**
  603. '** Purpose:
  604. '**     Sets drive status info according to latest disk space calcs.
  605. '** Arguments:
  606. '**     none.
  607. '** Returns:
  608. '**     none.
  609. '*************************************************************************
  610. SUB SetDriveStatus STATIC
  611.  
  612.     drive$ = MID$(DEST$, 1, 1)
  613.     ndrive% = ASC(ucase$(drive$)) - ASC("A") + 1
  614.     cost& = VAL(GetListItem(PCDLABNEEDS$, ndrive%))+VAL(GetListItem(PCDAUDNEEDS$, ndrive%))+VAL(GetListItem(PCDSCRNEEDS$, ndrive%))+VAL(GetListItem(PCDWALNEEDS$, ndrive%))+VAL(GetListItem(PCDQTRNEEDS$, ndrive%))
  615.     free& = GetFreeSpaceForDrive(drive$)
  616.     ReplaceListItem DRIVETEXT$, 1, drive$ + ":"
  617.     ReplaceListItem DRIVETEXT$, 2, STR$(cost& / 1024) + " K"
  618.     ReplaceListItem DRIVETEXT$, 3, STR$(free& / 1024) + " K"
  619.                 
  620. END SUB
  621.  
  622.  
  623. '**
  624. '** Purpose:
  625. '**     Appends a file name to the end of a directory path,
  626. '**     inserting a backslash character as needed.
  627. '** Arguments:
  628. '**     szDir$  - full directory path (with optional ending "\")
  629. '**     szFile$ - filename to append to directory
  630. '** Returns:
  631. '**     Resulting fully qualified path name.
  632. '*************************************************************************
  633. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  634.     IF szDir$ = "" THEN
  635.     MakePath = szFile$
  636.     ELSEIF szFile$ = "" THEN
  637.     MakePath = szDir$
  638.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  639.     MakePath = szDir$ + szFile$
  640.     ELSE
  641.     MakePath = szDir$ + "\" + szFile$
  642.     END IF
  643. END FUNCTION
  644.  
  645.